package org.momonga1banchi.reminder.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import org.apache.commons.lang.time.FastDateFormat;

/**
 * 日付ユーティリティ
 * @author sue445
 */
public final class DateUtils {
	/**
	 * 出力用フォーマット
	 */
	public static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss,SSS z";

	/**
	 * タイムゾーン
	 */
	public static final TimeZone TIME_ZONE = TimeZone.getTimeZone("Asia/Tokyo");

	private DateUtils(){

	}


	/**
	 * 日付変換
	 *
	 * @param date
	 *            日付
	 * @return タイムスタンプ
	 */
	public static String toString(Date date) {
		FastDateFormat dateFormat = FastDateFormat.getInstance(DATE_FORMAT, TIME_ZONE);
		return dateFormat.format(date);
	}

	/**
	 * 現在の時間を取得する
	 *
	 * @return
	 */
	public static String getNowTime() {
		return toString(new Date());
	}

	/**
	 * 日付解析
	 * @param str	解析対象の文字列
	 * @return		日付
	 */
	public static Date parse(String str) throws ParseException{
		DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
		dateFormat.setTimeZone(TIME_ZONE);
		return dateFormat.parse(str);
	}
}
